mongodump, mongorestore
MongoDB 백업 및 복원 가이드 (mongodump & mongorestore)
MongoDB에서 데이터를 백업하고 복원하는 방법으로 mongodump
와 mongorestore
도구를 사용할 수 있습니다. 이 문서는 mongodump
및 mongorestore
의 사용법과 옵션을 설명합니다.
1. mongodump
를 이용한 백업
mongodump
는 MongoDB 데이터를 BSON 형식으로 백업하는 도구입니다. 기본적으로 컬렉션을 BSON 형식의 파일로 저장하며, 이후 복원할 수 있도록 지원합니다.
1.1 기본 사용법
mongodump --out /백업경로
위 명령어는 MongoDB의 기본 인스턴스(localhost:27017
)에서 데이터를 덤프하여 지정된 /백업경로
에 저장합니다.
1.2 특정 데이터베이스 백업
mongodump --db mydatabase --out /backup/mongodb
--db mydatabase
:mydatabase
데이터베이스만 백업합니다.--out /backup/mongodb
: 백업 파일을/backup/mongodb
디렉터리에 저장합니다.
1.3 특정 컬렉션 백업
mongodump --db mydatabase --collection mycollection --out /backup/mongodb
--collection mycollection
:mydatabase
의 특정 컬렉션(mycollection
)만 백업합니다.
1.4 원격 서버에서 백업
mongodump --host example.com --port 27018 --db mydatabase --username user --password pass --out /backup/mongodb
--host example.com --port 27018
: 원격 서버(example.com:27018
)의 MongoDB에 연결합니다.--username user --password pass
: 인증이 필요한 경우 사용자 이름과 비밀번호를 입력합니다.
1.5 압축하여 백업하기
mongodump --db mydatabase --archive=/backup/mongodb.gz --gzip
--archive=/backup/mongodb.gz
: 백업 파일을 단일.gz
압축 파일로 저장합니다.--gzip
: 백업 데이터를 압축하여 저장합니다.
2. mongorestore
를 이용한 복원
mongorestore
는 mongodump
로 생성된 BSON 데이터를 복원하는 도구입니다.
2.1 기본 사용법
mongorestore /백업경로
/백업경로
내의 데이터베이스 및 컬렉션을 기본 MongoDB 인스턴스(localhost:27017
)에 복원합니다.
2.2 특정 데이터베이스 복원
mongorestore --db newdatabase /backup/mongodb/mydatabase
- 기존 데이터베이스 백업을
newdatabase
로 복원합니다.
2.3 특정 컬렉션 복원
mongorestore --db mydatabase --collection mycollection /backup/mongodb/mydatabase/mycollection.bson
- 특정 컬렉션(
mycollection
)만 복원합니다.
2.4 원격 서버에 복원
mongorestore --host example.com --port 27018 --db mydatabase --username user --password pass /backup/mongodb/mydatabase
- 원격 서버(
example.com:27018
)에 데이터를 복원합니다.
2.5 압축된 백업 파일 복원
mongorestore --gzip --archive=/backup/mongodb.gz
--gzip
: gzip으로 압축된 백업 파일을 복원합니다.
2.6 기존 데이터 덮어쓰기 (주의!)
mongorestore --drop --db mydatabase /backup/mongodb/mydatabase
--drop
옵션을 사용하면 기존 데이터를 삭제하고 복원합니다.- 기존 데이터와 중복되는 경우 문제가 발생할 수 있으므로 주의해야 합니다.
2.7 컬렉션 이름 변경하여 복원 (--nsFrom
, --nsTo
)
mongorestore --nsFrom=mydatabase.old_collection --nsTo=mydatabase.new_collection /backup/mongodb
mydatabase.old_collection
을mydatabase.new_collection
으로 이름을 변경하여 복원합니다.
3. 주의사항 및 베스트 프랙티스
- 백업 주기 설정: 중요한 데이터는 주기적으로 백업하여 데이터 손실을 방지해야 합니다.
- 백업 데이터 보관: 백업 파일을 안전한 장소(예: 클라우드 스토리지, 외부 스토리지)에 보관해야 합니다.
- 테스트 복원: 백업 데이터가 정상적으로 복원되는지 정기적으로 확인해야 합니다.
--drop
옵션 주의: 기존 데이터를 삭제하는--drop
옵션을 사용할 때는 신중해야 합니다.- 보안 고려: 원격 서버에서 백업 및 복원 시 보안 설정(예: 인증, SSH 터널링 등)을 고려해야 합니다.
이 문서를 참고하여 MongoDB 데이터를 효과적으로 백업하고 복원하세요!